<?php
namespace zzcms\util;

class Tool
{
    /**
     * 获取客户端操作系统
     */
    static public function getSystem()
    {
        if (!empty($_SERVER['HTTP_USER_AGENT'])) {
            $agent = $_SERVER['HTTP_USER_AGENT'];
            $os = false;
            if (preg_match('/win/i', $agent) && strpos($agent, '95')) {
                $os = 'Windows 95';
            } else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) {
                $os = 'Windows ME';
            } else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) {
                $os = 'Windows 98';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) {
                $os = 'Windows Vista';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) {
                $os = 'Windows 7';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) {
                $os = 'Windows 8';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) {
                $os = 'Windows 10';#添加win10判断
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) {
                $os = 'Windows XP';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) {
                $os = 'Windows 2000';
            } else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) {
                $os = 'Windows NT';
            } else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) {
                $os = 'Windows 32';
            } else if (preg_match('/linux/i', $agent)) {
                $os = 'Linux';
            } else if (preg_match('/unix/i', $agent)) {
                $os = 'Unix';
            } else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) {
                $os = 'SunOS';
            } else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) {
                $os = 'IBM OS/2';
            } else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)) {
                $os = 'Macintosh';
            } else if (preg_match('/PowerPC/i', $agent)) {
                $os = 'PowerPC';
            } else if (preg_match('/AIX/i', $agent)) {
                $os = 'AIX';
            } else if (preg_match('/HPUX/i', $agent)) {
                $os = 'HPUX';
            } else if (preg_match('/NetBSD/i', $agent)) {
                $os = 'NetBSD';
            } else if (preg_match('/BSD/i', $agent)) {
                $os = 'BSD';
            } else if (preg_match('/OSF1/i', $agent)) {
                $os = 'OSF1';
            } else if (preg_match('/IRIX/i', $agent)) {
                $os = 'IRIX';
            } else if (preg_match('/FreeBSD/i', $agent)) {
                $os = 'FreeBSD';
            } else if (preg_match('/teleport/i', $agent)) {
                $os = 'teleport';
            } else if (preg_match('/flashget/i', $agent)) {
                $os = 'flashget';
            } else if (preg_match('/webzip/i', $agent)) {
                $os = 'webzip';
            } else if (preg_match('/offline/i', $agent)) {
                $os = 'offline';
            } else {
                $os = 'Windows 7';
            }
            return $os;
        } else {
            return "unknow";
        }
    }

    /**
     * 获得访问者浏览器
     */
    static public function getBrowse()
    {
        if (!empty($_SERVER['HTTP_USER_AGENT'])) {
            $br = $_SERVER['HTTP_USER_AGENT'];
            if (preg_match('/MSIE/i', $br)) {
                $br = 'MSIE';
            } else if (preg_match('/Firefox/i', $br)) {
                $br = 'Firefox';
            } else if (preg_match('/Chrome/i', $br)) {
                $br = 'Chrome';
            } else if (preg_match('/Safari/i', $br)) {
                $br = 'Safari';
            } else if (preg_match('/Opera/i', $br)) {
                $br = 'Opera';
            } else {
                $br = 'Other';
            }
            return $br;
        } else {
            return 'unknow';
        }
    }

    /**
     * 生成树结构
     * @param $items
     * @param array $option
     * @return array
     */
    static function createTree($items, $option = [])
    {
        $parentid = isset($option['parentid']) ? $option['parentid'] : 'parentid';
        $child = isset($option['child']) ? $option['child'] : 'child';
        $id = isset($option['id']) ? $option['id'] : 'id';
        $tree = [];
        foreach ($items as $item) {
            if (isset($items[$item[$parentid]])) {
                $items[$item[$parentid]][$child][] = &$items[$item[$id]];
            } else {
                $tree[] = &$items[$item[$id]];
            }
        }
        return $tree;
    }
}